// eslint-disable-next-line @typescript-eslint/no-var-requires
const path = require('path');

// const DEV_MODE = process.env.NODE_ENV === 'development';
const PRO_MODE = process.env.NODE_ENV === 'production';
function resolve(dir) {
    return path.join(__dirname, dir);
}
module.exports = {
  css: {
    loaderOptions: {
      sass: {
        prependData: "@import '~@/styles/mixins', '~@/styles/variables'"
      },
      scss: {
        prependData: "@import '~@/styles/mixins', '~@/styles/variables';"
      }
    }
  },
  assetsDir: "static",
  productionSourceMap: false,
  publicPath: PRO_MODE ? "" : "/",
  configureWebpack: {
    devtool: PRO_MODE ? "" : "source-map"
  },
  chainWebpack: config => {
      config
          .entry('app')
          .clear()
          .add("./src/main.ts")
          .end();
      config.resolve.alias
          .delete('@')
          .set("@", resolve("src"))
          .set("@core", resolve("src/components"))
          .set("@services", resolve("src/services"))
          .set("@pkg", resolve("packages"))
          .end();
      // config.plugin("prefetch").tap(options => {
      //     options[0].fileBlacklist = options[0].fileBlacklist || [];
      //     options[0].fileBlacklist.push(/myasyncRoute(.)+?\.js$/);
      //     return options;
      // });
      // config.plugin("html").tap(options => {
      //     console.log("html-p", options);
      //     options[0].title = "乡村基层治理管理平台";
      //     options[0].js = jsSrc;
      //     options[0].inject = false;
      //     console.log("html-p", options);
      //     return options;
      // });
      // const svgRule = config.module.rule("svg");
      // const iconSrc = "src/icons";
      // // 清除已有的所有 loader。
      // // 如果你不这样做，接下来的 loader 会附加在该规则现有的 loader 之后。
      // svgRule.uses.clear();
      // svgRule
      //     .test(/\.svg$/)
      //     .include.add(resolve(iconSrc))
      //     .end()
      //     .use("svg-sprite-loader")
      //     .loader("svg-sprite-loader")
      //     .options({
      //   symbolId: "icon-[name]"
      //     });
      // const fileRule = config.module.rule("svgNotSprite");
      // fileRule.uses.clear();
      // fileRule
      //     .test(/\.svg$/)
      //     .exclude.add(resolve(iconSrc))
      //     .end()
      //     .use("file-loader")
      //     .loader("file-loader")
      //     .options({
      //   name: "static/img/[name].[hash:8].[ext]"
      //     });
  },
  devServer: {
      // after: require('./mock/server.js')
  }
};
